import time
import win32service
import win32serviceutil

# 服务名，例如“WMPNetworkSvc”是Windows媒体播放网络服务的名称
service_name = "pid-config-data"

# 获取服务的控制管理器


try:
    # 打开服务

    # 获取服务的状态
    
    status = win32serviceutil.QueryServiceStatus(service_name)
    print(status)
    # 服务的状态有一个叫做"dwCurrentState"的字段，这里我们关心它的值
    # SERVICE_STOPPED (1): 服务已停止
    # SERVICE_START_PENDING (2): 服务正在启动
    # SERVICE_STOP_PENDING (3): 服务正在停止
    # SERVICE_RUNNING (4): 服务正在运行
    # SERVICE_CONTINUE_PENDING (5): 服务正在继续
    # SERVICE_PAUSE_PENDING (6): 服务正在暂停
    # SERVICE_PAUSED (7): 服务已暂停
    print(f"服务状态: {status[1]}")  # 状态码1是服务的当前状态
    if (status[1] == win32service.SERVICE_STOPPED ):
        print("正在开启服务")
        win32serviceutil.StartService(serviceName=service_name)
        # 等待服务启动完成
        win32serviceutil.WaitForServiceStatus(serviceName=service_name,status=4, waitSecs=3)
    elif (status[1] == win32service.SERVICE_RUNNING or status[1]==win32service.SERVICE_PAUSED):
        print("正在关闭服务")
        # 停止服务
        status = win32serviceutil.StopService(service_name)
        # 等待服务关闭完成
        win32serviceutil.WaitForServiceStatus(serviceName=service_name,status=1, waitSecs=3)
     # 获取服务的状态
    status = win32serviceutil.QueryServiceStatus(service_name)

    # 服务的状态有一个叫做"dwCurrentState"的字段，这里我们关心它的值
    print(f"服务状态: {status[1]}")  # 状态码1是服务的当前状态

except win32service.error as err:
    print(f"服务无法被访问: {err}")


    
